// pages/tabBar/map.js
var bmap = require('../../utils/bmap-wx.min.js');
const app = getApp();
const util = require('../../utils/util')
const moment = require('../../utils/moment')
var map;
var BMap = new bmap.BMapWX({
  ak: 'TSjvDghIS9WelQRLz2WmWq6w2pdyNXOW'
});
Page({
 
  /**
   * 页面的初始数据
   */
  data: {
    longitude: "120.264267",
    latitude: "30.1841",
    scale: 15,
    params: {
      cityId: '87', //默认87
      areaId: '',
      streetId: '',
      propertyTypes: '102',
      tradeTypes: '',
      rentFlag: '',
    },
    markers: [],
    tempMark: {},
    visible: false,
    cityList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    
    
    this.getCityList();
  },

  //获取城市列表
  getCityList(){
    app.request({
      url: '/common/getCityList?provinceId=11&geoLevel=2',
      success: r=>{
        this.setData({ cityList: r.data})
        //城市加载完再搜索
        this.handleSearch()
      }
    })
  },

  closeBottom(){
    this.setData({ visible: false })
  },

  //点击标签
  onMarkerTap(e){
    let { markerId } = e.detail;
    app.request({
      url: '/target/info?id=' + markerId,
      success: r=>{
        let tempMark = r.data;
        let remark;
        tempMark.fields = tempMark.fields.map(item=>{
          let name = item.field.name;
          let value=""
          let valueUnit = item.field.valueUnit;
          if(item.field.valueType==0)value=item.decimalValue; //数字
          if(item.field.valueType==1)value=moment(item.longValue).format('YYYY-MM-DD'); //日期
          if(item.field.valueType==2)value=item.stringValue; //字符出阿奴
          return { name, value, valueUnit }
        }).filter(item=>{
            if(item.name=='备注'){
              remark = item;
            }
            return item.name=='成交日期'||item.name=='成交总价'||item.name=='成交单价'||item.name=='成交亩价'||item.name=='土地面积'||item.name=='建筑物面积'||item.name=='评估总价'||item.name=='房地合一成交单价'||item.name=='日租金'||item.name=='修正后标准亩价'
        })
        // 如果有备注，将备注放到最后一位
        if(remark)tempMark.fields.push(remark)
        this.setData({ tempMark, visible: true })
      }
    })
  },

  // 搜索数据
  handleSearch(){
    let { cityId, areaId, streetId, propertyTypes, tradeTypes, rentFlag, address } = this.data.params
    if(tradeTypes){
      tradeTypes = [tradeTypes]
    }
    let params = { cityId, areaId, streetId, propertyTypes: [propertyTypes], tradeTypes, rentFlag }
    let City = this.data.cityList.filter(item=>item.id==cityId)[0]
    let CityPoint =  util.bdToGcj(City.longitude, City.latitude)
    app.request({
      url: '/target/getCollection' + util.transUrlData(params),
      success: r=>{
        let markers = r.data.map(item=>{
          let { lng, lat } = util.bdToGcj(item[3], item[4])
          let mark = { id: Number(item[0]), latitude: lat, longitude: lng,width: 22, height: 22 };
          let iconPath = `https://uniland-tsttst.oss-cn-hangzhou.aliyuncs.com/common/map_icon/${item[1]}${item[2]}.png`
          if(item[6]){
            iconPath = `https://uniland-tsttst.oss-cn-hangzhou.aliyuncs.com/common/map_icon/z${item[2]}.png`
          }
          mark.iconPath = iconPath
          return mark
        })
        this.setData({ markers, longitude: CityPoint.lng, latitude: CityPoint.lat })
        // 增加一层判断，如果有输入addree地址，这个地址作为中心点，并标记中心点位置
        if(address){
          BMap.geocoding({
            address: City.name+address,
            success: r=>{
              console.log("转化前:" , r.result.location)
              let { lng, lat } = r.result.location
              //转化为腾讯的经纬度
              // let { lng, lat } = util.bdToGcj(r.result.location.lng, r.result.location.lat)
              markers.push({ id: 99999, latitude:lat, longitude:lng  })
              this.setData({ longitude:lng, latitude: lat, markers })
            }
          })
        }
      }
    })
  },

  //查看更多筛选条件
  linkSearch(){
    wx.navigateTo({
      url: '/pages/map/search?params='+JSON.stringify(this.data.params),
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})